# Sets project configuration based on system username

# General project configuration.

DEFAULT_DATASET_FILE_PATH = "Resources/train.csv"
DEFAULT_TRAINING_FILE_PATH = "Resources/training.csv"
DEFAULT_TESTING_FILE_PATH = "Resources/testing.csv"
DEFAULT_RESULTS_FILE_PATH = "Resources/results.csv"

READ_MODE = "rb"
WRITE_MODE = "wb"

SPLIT_AT = 20000

NOT_A_AQUESTION_QUANTIFIER_SPLIT = {
	'QUESTION_MARK_PRESENT': 0.3,
	'5W1H_PRESENT': 0.3,
	'REGEXP_MATCH': 0.4
}

NOT_CONSTRUCTIVE_QUANTIFIER_SPLIT = {
	'REPUTATION':{
		'VERY_LOW': 0,
		'LOW': 0.1,
		'MEDIUM': 0.2,
		'HIGH': 0.3,
		'VERY_HIGH': 0.4,
	},
	'EXTERNAL_LINK_PRESENT': 0.1,
	'LENGTH': {
		'VERY_SHORT': 0,
		'SHORT': 0.1,
		'MEDIUM': 0.2,
		'LONG': 0.1,
		'VERY_LONG': 0,
	},
	'CAPITAL_LETTERS': {
		'TOO_FEW': 0,
		'FEW': 0.05,
		'NORMAL': 0.1,
		'MANY': 0.05,
		'TOO_MANY': 0,
	},
	'PUNCTUATION_USE': {
		'TOO_FEW': 0,
		'FEW': 0.05,
		'NORMAL': 0.1,
		'MANY': 0.05,
		'TOO_MANY': 0,
	},
	'EMOTIONS_USE': {
		'FEW': 0.1,
		'SOME': 0.05,
		'MODERATE': 0,
	}
}

TOO_LOCALIZED_QUANTIFIER_SPLIT = {
	"NO_GEO_REFERENCE": 0.4,
	"NO_DATETIME": 0.3,
	"HASHTAGS_NUMBER": { 0: 0,
						 1: 0.1,
						 2: 0.2,
						 3: 0.3,
						 4: 0.2,
						 5: 0.1},
}
  
SVM_config = {
	"default_training_filename": "Output/SVM_learning2.dat",
	"known_number_of_samples": 140000,
	# SVM's time complexity is O(n^3) and memory complexity O(n^2), be carefull with increasing below value
	"training_sample_size" : 500,
	"training_sample_size_step" : 100,
	"training_sample_size_max" : 2000,
	"training_runs" : 5,
	"training_runs_step" : 1,
	"training_runs_max": 20,
	"default_offset" : 0,
	"number_of_quantifiers" : 4,
	"default_kernel": "RBF",
	"default_penalty_parameter_power": -8,
	"default_gamma_power": -8,
	"testing_sample_size": 5000,
	"RBF_hill_climbing2D_output_filename": "Output/RBF_hill_climbing2D.log",
	"LRASS_hill_climbing2D_output_filename": "Output/LRASS_hill_climbing2D.log",
	"hill_climbing_initial_step": 2.0,
	"hill_climbing_step_limit": 0.01,
	"default_positive_label": "1",
}

# Copy parts of general configuration below to make configuration user specific

import getpass

if getpass.getuser() == 'Seph':

	DEFAULT_DATASET_FILE_PATH = "F:\\Users\\Seph\\Datasets\\StackOverflowCompetition\\train.csv"
	DEFAULT_TRAINING_FILE_PATH = "F:\\Users\\Seph\\Datasets\\StackOverflowCompetition\\train-sample.csv"
	DEFAULT_TESTING_FILE_PATH = "C:\Users\Seph\Documents\Python\private_leaderboard.csv"
	DEFAULT_RESULTS_FILE_PATH = "C:\Users\Seph\Documents\Python\private_leaderboard_submission.csv"

elif getpass.getuser() == 'tarasbasiuk':

	DEFAULT_DATASET_FILE_PATH = "/home/tarasbasiuk/Kaggle/train.csv"
	DEFAULT_TRAINING_FILE_PATH = "/home/tarasbasiuk/Kaggle/train-sample.csv"
	DEFAULT_TESTING_FILE_PATH = "/home/tarasbasiuk/Kaggle/testing.csv"
	DEFAULT_RESULTS_FILE_PATH = "/home/tarasbasiuk/Kaggle/results.csv"

